home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 26 / Cream of the Crop 26.iso / os2 / octa209s.zip / octave-2.09 / libcruft / lapack / dlabad.f < prev    next >
Text File  |  1996-07-19  |  2KB  |  57 lines

  1.       SUBROUTINE DLABAD( SMALL, LARGE )
  2. *
  3. *  -- LAPACK auxiliary routine (version 2.0) --
  4. *     Univ. of Tennessee, Univ. of California Berkeley, NAG Ltd.,
  5. *     Courant Institute, Argonne National Lab, and Rice University
  6. *     October 31, 1992
  7. *
  8. *     .. Scalar Arguments ..
  9.       DOUBLE PRECISION   LARGE, SMALL
  10. *     ..
  11. *
  12. *  Purpose
  13. *  =======
  14. *
  15. *  DLABAD takes as input the values computed by SLAMCH for underflow and
  16. *  overflow, and returns the square root of each of these values if the
  17. *  log of LARGE is sufficiently large.  This subroutine is intended to
  18. *  identify machines with a large exponent range, such as the Crays, and
  19. *  redefine the underflow and overflow limits to be the square roots of
  20. *  the values computed by DLAMCH.  This subroutine is needed because
  21. *  DLAMCH does not compensate for poor arithmetic in the upper half of
  22. *  the exponent range, as is found on a Cray.
  23. *
  24. *  Arguments
  25. *  =========
  26. *
  27. *  SMALL   (input/output) DOUBLE PRECISION
  28. *          On entry, the underflow threshold as computed by DLAMCH.
  29. *          On exit, if LOG10(LARGE) is sufficiently large, the square
  30. *          root of SMALL, otherwise unchanged.
  31. *
  32. *  LARGE   (input/output) DOUBLE PRECISION
  33. *          On entry, the overflow threshold as computed by DLAMCH.
  34. *          On exit, if LOG10(LARGE) is sufficiently large, the square
  35. *          root of LARGE, otherwise unchanged.
  36. *
  37. *  =====================================================================
  38. *
  39. *     .. Intrinsic Functions ..
  40.       INTRINSIC          LOG10, SQRT
  41. *     ..
  42. *     .. Executable Statements ..
  43. *
  44. *     If it looks like we're on a Cray, take the square root of
  45. *     SMALL and LARGE to avoid overflow and underflow problems.
  46. *
  47.       IF( LOG10( LARGE ).GT.2000.D0 ) THEN
  48.          SMALL = SQRT( SMALL )
  49.          LARGE = SQRT( LARGE )
  50.       END IF
  51. *
  52.       RETURN
  53. *
  54. *     End of DLABAD
  55. *
  56.       END
  57.